#include <stdio.h>
#include <ctype.h>
/**
 * const 在 * 的左侧：修饰指向的数据（数据不可变）。
const 在 * 的右侧：修饰指针本身（指针不可变）。
例如：
char const *sptr：const 在 * 左侧，数据不可变。
char *const sptr：const 在 * 右侧，指针不可变。
 * @param sptr
 */
/* sptr是常量，指针不可变,但指向可变数据*/
void PrintStr(char *const sptr) {
    printf("%p\n", sptr);
    for (int i = 0; sptr[i] != '\0'; i++) /* sptr不可改变*/
    {
        sptr[i] = toupper(sptr[i]);
        printf("%c", sptr[i]);
    }
    // 指针是不可变的 编译会报错
//    for(;*sptr!='\0';sptr++){
//        printf("%c", *sptr);
//    }
    printf("\n");
    printf("%p", sptr);
}


//  最高权限的指针
int main() {
    char str[100];
    gets(str);
    PrintStr(str);
    return 0;
}

